import sheep from '@/sheep'

export function onReady(event) {
	console.log('IM准备完成 onReady')
	sheep.$store('im').setIsReady(true)
}

export function onNotReady(event) {
	sheep.$store('im').setIsReady(false)
}

export function onError(event) {
	console.log(event)
	// 将sdk状态设置为false
	sheep.$store('im').setIsReady(false)
}

export function onNetWork(event) {
	sheep.$store('im').setNetwork(event.data.state)
}

export function onMessageReceived(event) {
	sheep.$store('im').getMessageList()
}

export function onMessageReadByPeer(event) {
	// SDK 收到对端已读消息的通知，即已读回执。
	// event.name - TencentCloudChat.EVENT.MESSAGE_READ_BY_PEER
	// event.data - event.data - 存储 Message 对象的数组 - [Message] - 每个 Message 对象的 isPeerRead 属性值为 true
}
export function onConversationList(event) {
	// 收到会话列表更新通知，可通过遍历 event.data 获取会话列表数据并渲染到页面
	// event.name - TencentCloudChat.EVENT.CONVERSATION_LIST_UPDATED
	// event.data - 存储 Conversation 对象的数组 - [Conversation]
}

export function onGroupList(event) {
	sheep.$store('im').setMyGroup(event.data)
	// 收到群组列表更新通知，可通过遍历 event.data 获取群组列表数据并渲染到页面
	// event.name - TencentCloudChat.EVENT.GROUP_LIST_UPDATED
	// event.data - 存储 Group 对象的数组 - [Group]
}

export function onKickedOut(event) {
	sheep.$store('im').logAgain()
	// 收到被踢下线通知
	// event.name - TencentCloudChat.EVENT.KICKED_OUT
	// event.data.type - 被踢下线的原因，例如 :
	//   - TencentCloudChat.TYPES.KICKED_OUT_MULT_ACCOUNT 多实例登录被踢
	//   - TencentCloudChat.TYPES.KICKED_OUT_MULT_DEVICE 多终端登录被踢
	//   - TencentCloudChat.TYPES.KICKED_OUT_USERSIG_EXPIRED 签名过期被踢
	//   - TencentCloudChat.TYPES.KICKED_OUT_REST_API(REST API kick 接口踢出。)
}

export function onFriendList(event) {
	// 收到好友列表更新通知
	// event.name - TencentCloudChat.EVENT.FRIEND_LIST_UPDATED
	// event.data - 存储 Friend 对象的数组 - [Friend]
}

export function onApplication(event) {
	console.log('有人加我了', event)
	sheep.$store('im').unreadCount = event.data.unreadCount
	// 收到好友申请列表更新通知
	// event.name - TencentCloudChat.EVENT.FRIEND_APPLICATION_LIST_UPDATED
	// friendApplicationList - 好友申请列表 - [FriendApplication]
	// unreadCount - 好友申请的未读数
	// const { friendApplicationList, unreadCount } = event.data;
	// 发送给我的好友申请（即别人申请加我为好友）
	// const applicationSentToMe = friendApplicationList.filter((friendApplication) => friendApplication.type === TencentCloudChat.TYPES.SNS_APPLICATION_SENT_TO_ME);
	// 我发送出去的好友申请（即我申请加别人为好友）
	// const applicationSentByMe = friendApplicationList.filter((friendApplication) => friendApplication.type === TencentCloudChat.TYPES.SNS_APPLICATION_SENT_BY_ME);
}